<script setup>
import { ref } from 'vue';
import { useRouter } from 'vue-router';
import { showConfirmDialog, showToast } from 'vant'; // 按需引入 Dialog 和 Toast
import { useAuthStore } from '@/stores/auth';
import tarbar from '@/layout/tarbar/tarbar.vue';
import navbar from '@/layout/header/navbar.vue';

const router = useRouter();
const authStore = useAuthStore();

// 获取当前用户名
const username = ref(authStore.username);

// 登出功能
const handleLogout = async () => {
  try {
    await showConfirmDialog({
      title: '确认登出',
      message: '您确定要退出登录吗？',
    }).then(() => {
      // 用户点击确认后执行登出逻辑
      authStore.logout(); // 清除本地存储的 token 和用户信息
      router.push({ name: 'Login' }); // 跳转到登录页面
      showToast('已成功退出');
    }).catch(() => {
      // 用户点击取消后不执行任何操作
      console.log('用户取消了登出');
    });
  } catch (error) {
    console.error('登出失败:', error);
  }
};
</script>

<template>
  <navbar />
  <div class="setting-container">
    <p v-if="username">你好！ {{ username }}</p>
    <van-cell-group inset>
      <van-cell title="修改密码"/>
      <van-cell title="版本信息"/>
      <van-cell 
        title="退出登录" 
        is-link 
        @click="handleLogout" 
        class="logout-cell"
      />
    </van-cell-group>
  </div>
  <tarbar />
</template>

<style scoped>
.setting-container {
  padding: 16px;
}

h1 {
  margin-bottom: 1rem;
}

p {
  margin-bottom: 1rem;
}

.logout-cell{
  color: red; /* 设置退出登录文字颜色为红色 */
}
</style>